/*!
 * message 
 * create by Hongxia Wang
 * Email: 529095608@qq.com
 */
(function($){

	$.chongAlert = function(options){
		var self = this;
		var timeTemp = 0;
		this.alertContent = '';
		this.close = function(){
			$(self.alertContent).fadeOut(function(){
				$(this).remove();
				$('body').children('.chong-alert-parent').remove();
				clearTimeout(timeTemp);
			});
		};
		this.show = function(){
			var chongAlert = '';
			var chongContent = '';
			var chongLayer = '';
			var tpl = 
				'<div class="chong-alert-content">' + 
			 '<div class="chong-layer"></div>' + 
			 '<div class="alert chong-alert-right chong-alert alert-' + 
			this.defaultOptions.msgType + 
			' alert-dismissable" id="errorShow">' +
			'<span class="alert-close">×</span>' +
			'<span class="alert-msg">' + this.defaultOptions.msg + '</span>' +
			'</div></div>';
			self.defaultOptions.show();
			if(self.defaultOptions.delOther){
				$('.chong-alert-content').remove();
			}	
			if(self.defaultOptions.tpl){
				tpl = self.defaultOptions.tpl;
			}
			var parent = '';
			if($('body').children('.chong-alert-parent').length > 0){
				parent = $('body').children('.chong-alert-parent');
			}else{
				parent = $('body').append('<div class="chong-alert-parent"></div>')
				.children('.chong-alert-parent');
			}
			chongContent = parent.append(tpl).find('.chong-alert-content').last();
			this.alertContent = chongContent;
			chongContent.find('.alert-close').on('click',function(){
				self.defaultOptions.close();
			});
			chongAlert = chongContent.find('.chong-alert');
			chongLayer = chongContent.find('.chong-layer');
			if(self.defaultOptions.center){
				var marginTop = -chongAlert.height()/2 + 'px';
				var marginLeft = -chongAlert.width()/2 + 'px';
				chongAlert.removeClass('chong-alert-right').css({
					top: window.innerHeight/2 + 'px',
					left: window.innerWidth/2 + 'px',
					'margin-left': marginLeft,
					'margin-top': marginTop
				});
			}
			if(self.defaultOptions.layer){
				chongLayer.addClass('layer-true');
			}
			if(self.defaultOptions.timer){
				timeTemp = setTimeout(function(){
					self.defaultOptions.timeOutFunc();
					self.close();
					clearTimeout(timeTemp);
				},self.defaultOptions.time);
			}
			if(self.defaultOptions.clickClose){
				$(self.alertContent).on('click',function(){
					self.close();
				});
			}
		};
		this.defaultOptions = {
				// 点击关闭按钮时的回调
			close: function(){
				self.close();
			},
			// 自定义模板，默认为控件定义的模板
			tpl: undefined,
			// 显示alert时的回调函数
			show: function(){
			},
			// 是否显示遮罩层，默认不显示遮罩
			layer: false,
			// 点击遮罩层关闭，默认不关闭
			clickClose: false,
			// alert要显示的提示信息
			msg: '',
			// 是否居中，默认不居中
			center: false,
			// alert显示的类型，默认为提示信息{success: 提示信息（保存成功等）,danger: 错误信息}
			msgType: 'success',
			// 是否一致显示， 默认为一直显示
			timer: false,
			// 多少毫秒后自动消失，当timer为true时有效，
			time: 3000,
			// 超时的回调
			timeOutFunc: function(){},
			// 存在其他alert控件时的处理
			delOther: true // 当存在其他alert的时候，是否清楚其他alert，默认不动作
		};
		this.defaultOptions = $.extend(this.defaultOptions,options);
		return this;
	};
}(jQuery));